/**
 * 各类起始时间戳
 */

export const getStartEndTime = () => {
  // 一天的毫秒数
  const MillisecondsADay = 24 * 60 * 60 * 1000;
  // 1、现在的时间
  const nowTimeStamp = new Date().getTime();
  // 2、今天开始时间的时间戳
  const todayStartTimeStamp = new Date(
    new Date().toLocaleDateString()
  ).getTime();
  // 3、今天结束时间的时间戳
  const todayEndTimeStamp =
    new Date(new Date().toLocaleDateString()).getTime() +
    24 * 60 * 60 * 1000 -
    1;
  // 昨日开始时间戳
  const yesterdayStartTimeStamp = todayStartTimeStamp - MillisecondsADay;
  // 昨日结束时间戳
  const yesterdayEndTimeStamp = todayEndTimeStamp - MillisecondsADay;
  // 4、本周开始时间的时间戳
  const thisWeekStartTimeStamp =
    new Date(new Date().toLocaleDateString()).getTime() -
    (new Date().getDay() - 1) * 24 * 60 * 60 * 1000;
  // 5、本周结束时间的时间戳
  const thisWeekEndTimeStamp = new Date(
    new Date(
      new Date().setDate(new Date().getDate() + 7 - new Date().getDay() || 7)
    ).setHours(23, 59, 59, 0)
  ).getTime();
  // 6、本月开始时间的时间戳
  const thisMonthStartTimeStamp = new Date(
    new Date().getFullYear(),
    new Date().getMonth(),
    1
  ).getTime();
  // 7、本月结束时间的时间戳
  const thisMonthEndTimeStamp =
    new Date(new Date().getFullYear(), new Date().getMonth() + 1, 0).getTime() +
    24 * 60 * 60 * 1000 -
    1;
  // 8、本年开始时间的时间戳
  const thisYearStartTimeStamp = new Date(
    new Date().getFullYear(),
    0
  ).getTime();
  // 9、本年结束时间的时间戳
  const thisYearEndTimeStamp =
    new Date(new Date().getFullYear(), 11, 31).getTime() +
    24 * 60 * 60 * 1000 -
    1;
  return {
    nowTimeStamp,
    todayStartTimeStamp,
    todayEndTimeStamp,
    yesterdayStartTimeStamp,
    yesterdayEndTimeStamp,
    thisWeekStartTimeStamp,
    thisWeekEndTimeStamp,
    thisMonthStartTimeStamp,
    thisMonthEndTimeStamp,
    thisYearStartTimeStamp,
    thisYearEndTimeStamp,
  };
};
